// hdu3389
// 题意：给定n(<=10000)个箱子，每个箱子可能有若干卡片，箱子编号1, 2, 3,...
//       每次可以选两个箱子a, b满足b<a，且(a+b)%2==1, (a+b)%3==0, 然后从
//       a中放至少1张牌到b中。最后不能行动的人输。问谁是赢家。
//
// 题解：首先满足a+b那两个条件等价于(a+b)%6==3，这样如果按模6将所有数划分
//       可以得到6类数分别是余数0, 1, 2, 3, 4, 5。要使相加为3, 这5类余数
//       被划分为三组，(1, 2), (3, 0), (4, 5)，只有在同一组不同的余数才能
//       符合条件。我们按照序号按这三组可以得到下面序列:
//
//       1. 1, 2, 7, 8, 13, 14, ...
//       2. 3, 6, 9, 12, ...
//       3. 4, 5, 10, 11, ...
//
//       我们知道，一次行动相当于选定一组，从高的偶数到高的奇数放牌。
//       （如果是高的奇数向高的偶数放牌没有影响，因为下次操作的人可以
//       将这个被放到偶数位等数量的牌再放到比它低的奇数位）。这个过程
//       很像staircase nim, 略微有些差异，不过我们发现只要将没组的偶数
//       位取出来参与异或，如果是0后手必胜，否则先手必胜。
//
// run: $exec < input
#include <iostream>

int const maxn = 10007;
int a[maxn];
int n;

int main()
{
	std::ios::sync_with_stdio(false);
	int T; std::cin >> T;
	for (int ti = 1; ti <= T; ti++) {
		std::cout << "Case " << ti << ": ";
		std::cin >> n;
		int game = 0;
		for (int i = 1; i <= n; i++) {
			std::cin >> a[i];
			int r = i % 6;
			if (r == 2 || r == 0 || r == 5)
				game ^= a[i];
		}
		if (!game)
			std::cout << "Bob\n";
		else
			std::cout << "Alice\n";
	}
}

